package com.guigu.pojo.design;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.guigu.pojo.stock.SysManger;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 
 * </p>
 *
 * @author Mr.Zhang
 * @since 2024-12-06
 */
@Data
@TableName("D_FILE")
public class DFile implements Serializable {

    private static final long serialVersionUID=1L;

//    @ApiModelProperty(value = "序号，唯一标识产品档案记录，自增长")
      @TableId(value = "ID", type = IdType.AUTO)
    private Integer id;

//    @ApiModelProperty(value = "产品编号，不可为空，产品的唯一标识")
    @TableField("PRODUCT_ID")
    private String productId;

//    @ApiModelProperty(value = "产品名称，不可为空")
    @TableField("PRODUCT_NAME")
    private String productName;

//    @ApiModelProperty(value = "制造商名称，可空")
    @TableField("FACTORY_NAME")
    private String factoryName;

//    @ApiModelProperty(value = "产品 I 级分类编号，可空")
    @TableField("FIRST_KIND_ID")
    private String firstKindId;

//    @ApiModelProperty(value = "产品 I 级分类名称，可空")
    @TableField("FIRST_KIND_NAME")
    private String firstKindName;

//    @ApiModelProperty(value = "产品 II 级分类编号，可空")
    @TableField("SECOND_KIND_ID")
    private String secondKindId;

//    @ApiModelProperty(value = "产品 II 级分类名称，可空")
    @TableField("SECOND_KIND_NAME")
    private String secondKindName;

//    @ApiModelProperty(value = "产品 III 级分类编号，可空")
    @TableField("THIRD_KIND_ID")
    private String thirdKindId;

//    @ApiModelProperty(value = "产品 III 级分类名称，可空")
    @TableField("THIRD_KIND_NAME")
    private String thirdKindName;

//    @ApiModelProperty(value = "产品简称，可空")
    @TableField("PRODUCT_NICK")
    private String productNick;

//    @ApiModelProperty(value = "用途类型，如商品或物料标识，可空")
    @TableField("TYPE")
    private String type;

    @TableField(exist = false)
    private DProductUse dProductUse;

//    @ApiModelProperty(value = "档次级别，如高、中、低档标识，可空")
    @TableField("PRODUCT_CLASS")
    private String productClass;

    @TableField(exist = false)
    private DGrade dGrade;

//    @ApiModelProperty(value = "计量单位，可空")
    @TableField("PERSONAL_UNIT")
    private String personalUnit;

//    @ApiModelProperty(value = "计量值，可空")
    @TableField("PERSONAL_VALUE")
    private String personalValue;

//    @ApiModelProperty(value = "供应商集合，可空")
    @TableField("PROVIDER_GROUP")
    private String providerGroup;

//    @ApiModelProperty(value = "保修期，可空")
    @TableField("WARRANTY")
    private String warranty;

//    @ApiModelProperty(value = "替代品名称，可空")
    @TableField("TWIN_NAME")
    private String twinName;

//    @ApiModelProperty(value = "替代品编号，可空")
    @TableField("TWIN_ID")
    private String twinId;

//    @ApiModelProperty(value = "生命周期，可空")
    @TableField("LIFECYCLE")
    private String lifecycle;

//    @ApiModelProperty(value = "市场单价，可空")
    @TableField("LIST_PRICE")
    private BigDecimal listPrice;

//    @ApiModelProperty(value = "计划成本单价，可空")
    @TableField("COST_PRICE")
    private BigDecimal costPrice;

//    @ApiModelProperty(value = "实际成本单价，可空")
    @TableField("REAL_COST_PRICE")
    private BigDecimal realCostPrice;

//    @ApiModelProperty(value = "单位，可空")
    @TableField("AMOUNT_UNIT")
    private String amountUnit;

//    @ApiModelProperty(value = "产品描述，可空")
    @TableField("PRODUCT_DESCRIBE")
    private String productDescribe;

//    @ApiModelProperty(value = "产品经理，可空")
    @TableField("RESPONSIBLE_PERSON")
    private String responsiblePerson;

    @TableField(exist = false)
    private SysManger sysManger;

//    @ApiModelProperty(value = "登记人，可空")
    @TableField("REGISTER")
    private String register;

//    @ApiModelProperty(value = "建档时间")
    @TableField("REGISTER_TIME")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
    private Date registerTime;

//    @ApiModelProperty(value = "复核人，可空")
    @TableField("CHECKER")
    private String checker;

//    @ApiModelProperty(value = "复核时间")
    @TableField("CHECK_TIME")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
    private Date checkTime;

//    @ApiModelProperty(value = "审核标志，如等待审核0、通过1、不通过2，不可为空")
    @TableField("CHECK_TAG")
    private String checkTag;

//    @ApiModelProperty(value = "变更人，可空")
    @TableField("CHANGER")
    private String changer;

//    @ApiModelProperty(value = "变更时间，可空")
    @TableField("CHANGE_TIME")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
    private Date changeTime;

//    @ApiModelProperty(value = "档案变更标志，如未变0、已变1，可空")
    @TableField("CHANGE_TAG")
    private String changeTag;

//    @ApiModelProperty(value = "价格变更标志，如未变0、已变1，可空")
    @TableField("PRICE_CHANGE_TAG")
    private String priceChangeTag;

//    @ApiModelProperty(value = "档案变更累计次数，可空")
    @TableField("FILE_CHANGE_AMOUNT")
    private Integer fileChangeAmount;

//    @ApiModelProperty(value = "产品删除标志，如未删0、已删1，不可为空")
    @TableField("DELETE_TAG")
    private String deleteTag;

//    @ApiModelProperty(value = "物料组成标志，如未设计0、已设计1，不可为空")
    @TableField("DESIGN_MODULE_TAG")
    private String designModuleTag;

//    @ApiModelProperty(value = "工序组成标志，如未设计0、已设计1，不可为空")
    @TableField("DESIGN_PROCEDURE_TAG")
    private String designProcedureTag;

//    @ApiModelProperty(value = "库存分配标志，如未设计0、已设计1，不可为空")
    @TableField("DESIGN_CELL_TAG")
    private String designCellTag;


}
